from public.action import *
from public.business import *
from public.testData import *
from public.tools import *
import time
testCase = "DBshop004_购物流程取消订单"

# 1.在首页搜索"小米",点击搜索按钮
firefox=openBrowser(url) #调用自定义函数打开网页,url的值是在testData文件中定义的
#调用自定义函数进行登录
DBshopLogin(firefox,userName,password)
firefox.find_element_by_xpath('//input').send_keys('小米')
firefox.find_element_by_xpath('(//input)[2]').click()
# 2.选择小米mix3,加入到购物车,点击购物车按钮
#点击商品图片弹出新页面
firefox.find_element_by_xpath('//a[@href="/dbshop/goods/8/2"]').click()
#调用函数切换页面
switchWindow(firefox,2)
#在新页面中点击加入购物车按钮
firefox.find_element_by_id('add_cart_submit').click()
time.sleep(2)
#点击去购物车结算按钮
firefox.find_element_by_link_text('去购物车结算').click()
# 3.点击"去结算"按钮
firefox.find_element_by_link_text('去结算').click()
# 4.默认地址已经被选择,点击下一步按钮
firefox.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.支付方式选择"线下支付",点击确认订单
firefox.find_element_by_xpath('//input[@value="xxzf"]').click()
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
#使用变量orderNO存储订单编号
orderNO=firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
#获取项目的绝对路径
rootPath=get_pro_rootpath()
# 将订单编号写入到文件中,方面后面的脚本去使用这个订单编号
#这就是跨脚本传递数据
writeFile(rootPath+'\public\order004.txt',orderNO)
# 6.点击"查看订单详情",点击"取消订单"
firefox.find_element_by_xpath('//input[@value="查看订单详情"]').click() #点击查看详情按钮
firefox.find_element_by_xpath('//button[text()="取消订单"]').click()
time.sleep(1)
firefox.switch_to.alert.accept()
time.sleep(1)
firefox.find_element_by_partial_link_text('无效订单').click()#点击无效订单,使用链接文字的模糊查询定位
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
firefox.find_element_by_xpath('//button').click()
#断言
try:
    firefox.find_element_by_link_text(orderNO)
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)
firefox.quit()